/**********************************************
	* @author: Jun
	* @time  : 2018/8/1
	* @brief ：像素点操作
	* @note  ：none
**********************************************/
#ifndef _OC_PIXEL_H_
#define _OC_PIXEL_H_

#include "../oc_user/oc_config.h"
#include "../oc_user/oc_user.h"
#include "../oc_user/oc_base.h"

#define OC_HORIZONTAL       0x0
#define OC_VERTICAL         0x1

/**********************************************
	* @brief  : 使用 Bresenham 算法画线段（基于两点） 
	* @param  : xpos1 ：线段的一个端点X坐标
	* @param  : ypos1 ：线段的一个端点Y坐标
	* @param  : xpos2 ：线段的另一个端点X坐标
	* @param  : ypos2 ：线段的另一个端点Y坐标
	* @note  
	* @retval : 无
**********************************************/
void oc_draw_line( uint16_t xpos1, uint16_t ypos1, uint16_t xpos2, uint16_t ypos2 );

/**********************************************
	* @brief  :绘制空心矩形
	* @param  :xpos ：矩形左上角端点X坐标
	* @param  :ypos ：矩形左上角端点Y坐标
	* @param  :Width ：矩形宽
	* @param  :Height ：矩形高
	* @note :
	* @retval :无
**********************************************/
void oc_draw_rect(uint16_t xpos, uint16_t ypos, uint16_t Width, uint16_t Height);

/**********************************************
	* @brief  :绘制实心矩形
	* @param  :xpos ：矩形左上角端点X坐标
	* @param  :ypos ：矩形左上角端点Y坐标
	* @param  :Width ：矩形宽
	* @param  :Height ：矩形高
	* @note :
	* @retval :无
**********************************************/
void oc_draw_full_rect(uint16_t xpos, uint16_t ypos, uint16_t Width, uint16_t Height);

/**********************************************
	* @brief  :绘制空心圆
	* @param  :xpos ：中心点X坐标
	* @param  :ypos ：中心点Y坐标
	* @param  :Radius ：圆形半径
	* @note :
	* @retval :无
**********************************************/
void oc_draw_circle(uint16_t xpos,uint16_t ypos,uint16_t Radius);

/**********************************************
	* @brief  : 使用 Bresenham 算法画椭圆
	* @param  : xpos1 ：线段的一个端点X坐标
	* @param  : ypos1 ：线段的一个端点Y坐标
	* @param  : xpos2 ：线段的另一个端点X坐标
	* @param  : ypos2 ：线段的另一个端点Y坐标
	* @note  
	* @retval : 无
**********************************************/
void oc_draw_ellipse (int xRadius, int yRadius, int xpos, int ypos);
		
#endif
